package bonus;

import java.util.LinkedList;
import java.util.List;
import java.util.Set;
import java.util.Stack;

import tablero.Ciudad;
import tablero.NombreRegion;
import tablero.Tablero;

import jugador.Jugador;

public class BonusSt extends Bonus {
	private Stack <Integer> pilaSt;
	public BonusSt()
	{
		 pilaSt = new Stack<Integer>();
		 pilaSt.addElement(new Integer(1));
		 pilaSt.addElement(new Integer(2));
		 pilaSt.addElement(new Integer(3));
	}
	@Override
	boolean cumple(Jugador j) {
		if (pilaSt.isEmpty())
			return false;
		boolean enc = false;
		List<Ciudad> listaCiudadConOficinas = new LinkedList<Ciudad>();
		Set<Ciudad> s =	j.getOficinasColocadas().keySet();
		for (Ciudad c: s){
			listaCiudadConOficinas.add(c);
		}
		List<Ciudad> ciudadesSchweiz = Tablero.getInstance().getCiudadesRegion(NombreRegion.Schweiz);
		List<Ciudad> ciudadesTyrol = Tablero.getInstance().getCiudadesRegion(NombreRegion.Tyrol);
		if (listaCiudadConOficinas.containsAll(ciudadesSchweiz) && listaCiudadConOficinas.containsAll(ciudadesTyrol)){
			enc = true;
		}
		return enc;
	}
	@Override
	Integer vaciarPila(Jugador j) {
		return  pilaSt.pop();
	}

}
